﻿
using System;
using UFrame.ECS;
using UnityEngine;

namespace UFrameCode
{
    public class TestCreateUEntity:MonoBehaviour
    {
        public void Awake()
        {
            UWorld world = new UWorld();
            
            //初始化一个实体
            UEntity u = new UEntity();
            u.AddComponent<Equip>();
            u.AddUSystem(new USystem());
            GameObject go = new GameObject();
            u.SetRoot(go);
            u.PrepareInit();

            if (u.IsComponent<Equip>())    //他就是一个装备
            {
                
            }


            if (u is Equip)        //面向对象， 超过三层继承 非常难扩展代码，
            {
                
            }
        }

        public void TestUseEntity1()
        {
            //兼容Unity正常使用prefab流程，来写逻辑. 演示如下
            GameObject go = new GameObject();        //假设这个是我们保存好的预制体，上面有脚本 和其他任何东西
            UWorld world = new UWorld();
            var entity = world.CreateEntity();
            entity.SetRoot(go);
            entity.PrepareInit();    //初始化
        }


    }

    public class Equip : UComponent
    {
        
    }
    public class UComPerson : UComponent
    {
        
    }
    public class UComPersonRole : UComponent
    {
        
    }
}